package com.fzsf.drawingboard.utils;

import java.util.LinkedList;

/**
 * Created by Taijl on 2018/1/23.
 * 滑动平均值法：
 * 滑动平均值法当前采样1次压力值，将本次采样值和以前的N－1次采样值一起求平均，
 * 得到当前的有效采样值。滑动平均值法把N个采样数据看成一个队列，对列的长度固定为N，
 * 每进行一次新的采样，把采样结果放入队尾，而扔掉原来队首的一个数据，
 * 这样在队列中始终有N个“最新”的数据。计算滤波值时，只要把队列中的N个数据进行平均，就可得到新的滤波值。
 */

public class PressureUtils {

    public static LinkedList<Integer> pressureList = new LinkedList();

    public static void addPressure(int pressure) {
        if (pressureList.size() < 5) {
            pressureList.add(pressure);
        } else {
            pressureList.removeFirst();
            pressureList.add(pressure);
        }
    }

    public static int getValidPressure() {
        if (null == pressureList || pressureList.isEmpty()) {
            return 0;
        } else {
            int sum = 0;
            for (Integer value : pressureList) {
                sum += value;
            }
            return sum / pressureList.size();
        }
    }

    public static void clearPressureList() {
        pressureList.clear();
    }

}
